iT邦幫忙

2021 iThome 鐵人賽

DAY 15
1

我們也可以在 React 裡利用陣列來產出重複的東西,例如 li 。

function FruitList(props) {
 const arr = props.data;
 const listItems = arr.map((val) =>
   <li>{val}</li>
 );
 return <ul>{listItems}</ul>
}
const arr = ["Apple", "Banana", "Coconut"]
const el13= <FruitList data={arr} />
ReactDOM.render(
  el13,
  document.getElementById('root15')
)

以上我們可以注意到在consloe裡都有跳一個警告,說每個元件都需要一個唯一的 Key ,這使 React 可以辨識每個元件,特別是在增減更新的時候。

所以,我們改寫如下

function FruitList(props) {
 const arr = props.data;
 const listItems = arr.map((val, index) =>
   <li key={index}>{val}</li>
 );
 return <ul>{listItems}</ul>
}
const arr = ["Apple", "Banana", "Coconut"]
const el13= <FruitList data={arr} />
ReactDOM.render(
  el13,
  document.getElementById('root15')
)

如此一來警告就消失了。

不過有人提到使用 index 來作為 id 並不妥適,我想這也是有可能的,大家可以參考別的寫法或使用 UUID 唷。


相關文章:

How to create unique keys for React elements?


預告:課程結束的內容是做一個ToDoList, 而我希望能把它改造成從 ToDoList 中隨機選一個值出來,我想這會花費我好幾天來規劃。(因為原本的發想很大,雖然朋友已經寫完了,但我想如果我也能寫出來,應該就可以無愧地說,我會寫一點點程式了:D )


上一篇
Day 17 - Event Handling
下一篇
Day - 19 分開頁面
系列文
網頁設計師轉職前端工程師的血淚辛酸路21
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言